The present invention relates to a congestion control technique for use in network systems.
FIG. 1 is a block diagram representing a modern communications network 100. The network 100 is populated by a number of communication switches 110-170. Switches 110-170 are interconnected by communication trunks according to a predetermined arrangement. To establish a communication link between, for example, two telephones 10, 20 the communication network 100 establishes a call path therebetween. One such call path is illustrated in FIG. 1, traversing switches 120, 140, 160 and 170.
As is known, at the beginning of a call, the call path is established incrementally through the network 100. For example, an originating telephone 10 generates an off-hook signal and enters a telephone number of a destination telephone 20. Switch 120 interprets the telephone number and determines to route the call in the direction of switch 140. Switch 120 signals switch 140 with a call request message identifying telephone 20 as the destination of the call path. In response, if switch 140 possesses available capacity sufficient to route the call, switch 140 may reply within an acknowledgment message to switch 120. If not, switch 140 signals switch 120 with a call reject message.
If switch 140 determines that it can process the call, it determines that it will route the call through switch 160. Switch 140 repeats the process that was used by switch 120. It generates a call request message to switch 160 which may be responded to by either an acknowledgment message or a call reject message. Thus, a call path is established incrementally through network 100 to establish a communication link between two telephones. Initiation of call paths in communication networks is well-known.
In a signaling network, the known xe2x80x9cAutomatic Congestion Controlxe2x80x9d algorithm (ACC) is used during switch overloads to maintain network throughput. Studies demonstrate that the known ACC algorithm performs poorly. Indeed, these studies suggest that switch throughput can be improved by disabling the ACC algorithm entirely.
The following is taken from the ITU Standards (Blue Book):
xe2x80x9cAutomatic Congestion Control (ACC) is used when an exchange [switch] is in an overload condition. Two levels of congestion are distinguished, a less severe congestion threshold (congestion level 1) and a more severe congestion threshold (congestion level 2). If either of the two congestion levels is reached, an automatic congestion control information message may be sent to the adjacent exchanges indicating the level of congestion (congestion level 1 or 2). The adjacent exchanges, when receiving an automatic congestion control information message, should reduce their traffic to the overload affected exchange.xe2x80x9d
See, CCITT-Blue Book, Specification of Signaling System Number 7 (1998).
The ACC level is typically based on the real time utilization and queue length thresholds in a xe2x80x9cCongested Switch.xe2x80x9dThe ACC levels are passed back to a source switch in the known Release (REL) and Address Complete (ACM) messages. When a source switch determines that a congested switch is in overload, it blocks calls directed to the congested switch. If the congested switch""s ACC level is 1, then the source switch blocks 75% of Hard-to-Reach (HTR) calls destined for the congested switch. If the ACC level is 2, then the source switch blocks all HTR calls and 75% of Not-Hard-to-Reach (NHR) calls destined for the congested switch. Call blocking remains in effect for a period of 3 seconds. Additional details of the ACC algorithm may be found in ITU-T Recommendation Q.542, Digital Exchange Design Objectionsxe2x80x94Operations and Maintenance. 
Studies demonstrate that the known ACC algorithm performs poorly. See, Houck, et al., Failure and Congestion Propagation Through Signaling Control, Proc. 14th Int""l Teletraffic Congress (June 1994). Houck draws the following conclusions:
The present implementation of the ACC algorithm is non-optimal and higher throughput can be achieved by turning it off;
The ACC algorithm over-controls traffic which, in turn, leads to congestion propagation from congested switches to non-overloaded switches; and
The control duration (3 seconds) is too long and the control granularity (two blocking levels for HTR and NHR) is too coarse.
Houck recommends increasing the granularity of the control (from two values) and decreasing the control duration interval (from 3 seconds). However, a change in the number of levels would require message format changes in the ACC standard. Accordingly, Houck""s recommendation requires agreement from all major switch venders.
A network congestion controller was suggested by Furmann, et al. See, xe2x80x9cAn Adaptive Antonomous Network Congestion Controller,xe2x80x9d Proc. ITC Specialists Seminar on Control in Comm. (1996). Furmann""s approach uses congestion control at a source switch based on locally available information rather than from commands originated from a congested switch. Its controller attempts to maintain a call acceptance rate at a predetermined value.
There is a need in the art for a congestion control technique in a communication system that maintains high network throughput and that prevents switches from experiencing severe congestion events while, at the same time, working within the framework of the present ACC signaling standard.
Embodiments of the present invention provide a congestion control method in which a source switch measures the number of calls sent by the source switch to a congested switch that are rejected by the congested switch. In response to a report from the congested switch identifying its level of congestion, the source switch blocks calls destined for the congested switch based upon the measured number of rejected calls, the number of calls it may have previously blocked and the value of the ACC level it most recently received from the congested switch.
A given switch may act as both a congested switch and a source switch. The switch routes call traffic to one or more switches in a network; the switch is a source to those other switches. At the same time, the same switch may receive call traffic from the other switches. The switch may be a congested switch and the other switches may be source switches.